getopts
コマンドラインオプションを処理する。
getopts 引数1 引数2
引数1は、アルファベットとコロンで作られている文字列で指定される。最初のコロンは,エラー処理を表示しないため、アルファベットの後のコロンは、そのフルファベットが引数を持っているときに指定する。
引数を取る場合、変数OPTちすきに代入される。
不正な引数を指定すると、getoptsは、cmd: setopts:illegal option -oという形式でerrorを表示し、変数optには、?が代入される。
引数がコロン:で始まる場合、エラーメッセージは、表示されなくなる。引数2は、変数名を指定し、setoptdで分離されたoptionを代入する。その場合ハイフンは取り除かれる。
変数OPTINDには、次に実行されるコマンドライン番号が入っている。終了時に本物の番号になる。
オプションが残っている場合、終了ステータスは、0を返す。
オプションがなくなった時点では、終了ステータスは、1を返す。
プログラム例)
引数の判定を繰り返し行う、引数Bの場合そのオブション引数を持っている処理をする。
while setopts ":ab:c" opt; do
case $1 in
-a) option A 処理;;
-b) option B 処理;;
$OPTARGは、オプション引数;;
-c) option C 処理;;
*) echo '指定以外の引数が使われています。'
exit 1
esac
done
shift $((OPTARG - 1))